package com.yuexunit.finance.common;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 *@version 创建时间：2018年1月10日 下午6:59:28
 *@author wenwenlong
 *类说明
 */

public class ZipUtils {
	/**
	 * 根据输入的文件与输出流对文件进行打包
	 *
	 * @param inputFile
	 * @param ouputStream
	 */
	public static void zipFile(List<InputStream> inputFiles, ZipOutputStream ouputStream, String fileName) {
		try {
			ZipEntry entry = new ZipEntry(fileName);
			for (InputStream inputFile : inputFiles) {
				/**如果是目录的话这里是不采取操作的，至于目录的打包正在研究中**/
					BufferedInputStream bins = new BufferedInputStream(inputFile, 1024);
					//org.apache.tools.zip.ZipEntry
					ouputStream.putNextEntry(entry);
					// 向压缩文件中输出数据
					int nNumber;
					byte[] buffer = new byte[1024];
					while ((nNumber = bins.read(buffer)) != -1) {
						ouputStream.write(buffer, 0, nNumber);
					}
					// 关闭创建的流对象
					bins.close();
					inputFile.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
